﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FrameworkManapro.BusinessModel;

namespace GMAC.ReportingSystem.Business.Entities
{
    [DbProcedures(Insert = "", Update = "procDealerUpdate", Delete = "")]
    public class Dealer : BusinessEntity
    {
        /// <summary>
        /// Gets or sets the DealerID.
        /// </summary>
        /// <value>The DealerID.</value>
        [EntityPrimaryKey]
        [DbParameter(0, 1, 0)]
        public int DealerID { get; set; }

        /// <summary>
        /// Gets or sets the DealerNumber.
        /// </summary>
        /// <value>The DealerNumber.</value>
        [DbParameter(0, 0, 0)]
        public string DealerNumber { get; set; }

        /// <summary>
        /// Gets or sets the DealerName.
        /// </summary>
        /// <value>The DealerName.</value>
        [DbParameter(0, 0, 0)]
        public string DealerName { get; set; }

        /// <summary>
        /// Gets or sets the DealerTaxID.
        /// </summary>
        /// <value>The DealerTaxID.</value>
        [DbParameter(0, 0, 0)]
        public string DealerTaxID { get; set; }

        /// <summary>
        /// Gets or sets the DealerPhoneNumber.
        /// </summary>
        /// <value>The DealerPhoneNumber.</value>
        [DbParameter(0, 0, 0)]
        public string DealerPhoneNumber { get; set; }

        /// <summary>
        /// Gets or sets the DealerFaxNumber.
        /// </summary>
        /// <value>The DealerFaxNumber.</value>
        [DbParameter(0, 0, 0)]
        public string DealerFaxNumber { get; set; }

        /// <summary>
        /// Gets or sets the DealerElectronicMailAddress.
        /// </summary>
        /// <value>The DealerElectronicMailAddress.</value>
        [DbParameter(0, 0, 0)]
        public string DealerElectronicMailAddress { get; set; }

        ///<sumary>
        /// Gets or sets the Status
        /// </sumary>
        /// <value>The Status </value>
        [DbParameter(0, 2, 0)]
        public bool Status { get; set; }

        /// <summary>
        /// Gets or sets the DealerAddressLine1.
        /// </summary>
        /// <value>The DealerAddressLine1.</value>
        [DbParameter(0, 0, 0)]
        public string DealerAddressLine1 { get; set; }

        /// <summary>
        /// Gets or sets the DealerAddressLine2.
        /// </summary>
        /// <value>The DealerAddressLine2.</value>
        [DbParameter(0, 0, 0)]
        public string DealerAddressLine2 { get; set; }

        /// <summary>
        /// Gets or sets the DealerAddressLine3.
        /// </summary>
        /// <value>The DealerAddressLine3.</value>
        [DbParameter(0, 0, 0)]
        public string DealerAddressLine3 { get; set; }

        /// <summary>
        /// Gets or sets the DealerAddressLine3.
        /// </summary>
        /// <value>The DealerAddressLine3.</value>
        [DbParameter(0, 0, 0)]
        public string DealerAddressLine4 { get; set; }

        /// <summary>
        /// Gets or sets the DealerAddressLine3.
        /// </summary>
        /// <value>The DealerAddressLine3.</value>
        [DbParameter(0, 0, 0)]
        public string DealerSectionNumber { get; set; }

        /// <summary>
        /// Gets or sets the DealerGroupID.
        /// </summary>
        /// <value>The DealerGroupID.</value>
        [DbParameter(0, 3, 0)]
        public DealerGroup DealerGroupID { get; set; }

        ///<sumary>
        /// Gets or sets the DealerFI
        /// </sumary>
        /// <value>The DealerFI </value>
        [DbParameter(0, 4, 0)]
        public bool DealerFI { get; set; }

        /// <summary>
        /// Gets or sets the DealerState.
        /// </summary>
        /// <value>The DealerState.</value>
        [DbParameter(0, 5, 0)]
        public State DealerState { get; set; }

        /// <summary>
        /// Gets or sets the DealerType.
        /// </summary>
        /// <value>The DealerType.</value>
        [DbParameter(0, 6, 0)]
        public GeneralEnumTypes.TypeDealer? DealerType { get; set; }

        /// <summary>
        /// Gets or sets the DealerGlink.
        /// </summary>
        /// <value>The DealerGlink.</value>
        [DbParameter(0, 7, 0)]
        public bool DealerGlink { get; set; }

        /// <summary>
        /// Gets or sets the AccountRepresentativeID.
        /// </summary>
        /// <value>The AccountRepresentativeID.</value>
        [DbParameter(0, 8, 0)]
        public AccountRepresentative AccountRepresentativeID { get; set; }


    }
    public class DealerCollection : List<Dealer>
    {
        public int TotalResults { get; set; }
    }
}
